<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>

  <body>
    <script>
      // 参数是函数或者返回值是函数   - 高阶函数
      // 将myforEach遍历方法挂载在原型对象上  
      /* cb 回调函数
      (item,index,arr)=>{
        console.log(item,index,arr)
      }
      */
      Array.prototype.myforEach = function(cb){
        // console.log(this);  //this为整个数组
        for(let i = 0;i<this.length;i++){
          // this[i]是数组中的每一项的值  i为数组每一项的下标  this是指整个数组
          // console.log(this[i],i,this)
          cb(this[i],i,this)
        }
      }

      const arr = [1,2,3,4,5]

      arr.myforEach((item,index,arr)=>{
        console.log(item,index,arr)
      })

      const arr2 = ['a','b','c']
      arr2.myforEach((item,index,arr)=>{
        console.log(item,index,arr)
      })
    </script>
  </body>
</html>